﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Mail;

namespace Model
{
    public class MailAccount
    {
        // Attributter
        private string brugernavn;
        private string password;
        private string visteNavn;
        private string adresse;
        private SmtpClient klient;      /* et SmtpClient-objekt kan varetage de funktionaliteter, 
                                           som man skal bruge til at sende en e-mail */

        // Konstruktør
        public MailAccount()
        {
            brugernavn = "emma.uden.dilemma";
            password = "Qwerty2011";
            visteNavn = "EmmaTest";       // navn der vises istedet for e-mail-adressen
            adresse = brugernavn + "@gmail.com";

            klient = new SmtpClient();

            // Krav fra gmail
            klient.Host = "smtp.gmail.com";     // mail host adressen
            klient.Port = 587;      // gmail's smtp port
            klient.EnableSsl = true;        // sikkerheds feature
            klient.DeliveryMethod = SmtpDeliveryMethod.Network;
            klient.UseDefaultCredentials = false;
            klient.Credentials = new NetworkCredential(adresse, password);
        }

        // Metode til at sende en besked
        public void SendMessage(string modtagerAdresse, string emne, string besked, string filPlacering)
        {
            MailMessage message = new MailMessage(adresse, modtagerAdresse, emne, besked);

            Attachment attachment = new Attachment(filPlacering);
            message.Attachments.Add(attachment);

            klient.Send(message);
        }

        // properties
        public string Brugernavn
        {
            get { return brugernavn; }
            set { brugernavn = value; }
        }

        public string Password
        {
            get { return password; }
            set { password = value; }
        }

        public string VisteNavn
        {
            get { return visteNavn; }
            set { visteNavn = value; }
        }

        public string Adresse
        {
            get { return adresse; }
        }
    }
}
